Incremental Call Graph Reanalysis for Object-Oriented Software Maintenance
نویسندگان
چکیده
A program’s call graph is an essential underlying structure for performing the various interprocedural analyses used in software development tools for object-oriented software systems. For interactive software development tools and software maintenance activities, the call graph needs to remain fairly precise and be updated quickly in response to software changes. This paper presents incremental algorithms for updating a call graph that has been initially constructed using the Cartesian Product Algorithm, which computes a highly precise call graph in the presence of dynamically dispatched message sends. Templates are exploited to reduce unnecessary reanalysis as software component changes occur. The preliminary empirical results from our implementation within a Java environment are encouraging. Significant time savings were observed for the incremental algorithm in comparison to an exhaustive analysis, with no loss in precision.
منابع مشابه
Incremental Maintenance of Object-Oriented Views in a Warehousing Environment
Data warehousing is an approach to data integration in which integrated information is stored in a data warehouse for direct querying and analysis. To provide fast access, a data warehouse stores materialized views defined over data from its data sources. As a result, a data warehouse needs to be maintained to keep its contents consistent with the contents of its data sources. Incremental maint...
متن کاملReverse-engineering Cobol via formal methods
We describe methods and software tools which aid in reverse-engineering COBOL application programs back to the specification stage (and in validating them against the specification). The aim is to create object-oriented abstractions from the implementation which capture the design concepts accurately, and the central process which the tools support is ‘transformation from formalism to formalism...
متن کاملClass-based Visibility from an MDA Perspective: From Access Graphs to Eiffel Code
Encapsulation is one of the main principles in object-oriented software construction. Reducing software component coupling and enforcing interface definition facilitates maintenance, reusability and incremental development, thus increasing software quality. Encapsulation is usually supported by specific access control (visibility) mechanisms as private or protected in Java and C++ or Eiffel’s e...
متن کاملRECAST: Evolution of Object-Oriented Applications
This research project is about reengineering object-oriented applications. Reengineering such applications inherits complex problems related to software maintenance, i.e., program understanding, program analysis, and program transformation and adds to them (1) the complexity introduced by late binding, dynamic typing, and incremental definition specific to object-oriented programming, and (2) t...
متن کاملDesign of Class Hierarchies Based on Concept (Galois) Lattices
Building and maintaining the class hierarchy has been recognized as an important but one of the most difficult activities of object-oriented design. Concept (or Galois) lattices and variant structures are presented as a framework for dealing with the design and maintenance of class hierarchies. Because the design of class hierarchies is inherently an iterative and incremental process, we design...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001